package com.yhb.channel.dao.flow;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class ExecutionFlow {
    public enum Type {
        PAY,
        REMIT, // 自动发起的提现
        ACTIVE_REMIT // 手动发起的提现
    }
    public enum FlowStatus {
        INITIALIZED,
        SUCCEEDED,
        FAILED,
        RETRIED
    }

    String id;
    String userId;
    String vipType;
    Type type;
    String channelType;
    BigDecimal amount;
    String extendInfo;
    Date createTime;
    FlowStatus status;
    String cardId;
    String requestId;
    BigDecimal commission; // 消费手续费
    BigDecimal remitFee; // 代付手续费
    Date updateTime;
    String orderId; // 对应通道订单号
    String retryId; // 重试后有个重试号
    String failReason; // 失败原因
}
